package com.ruoyi.booking.service;

import java.util.List;
import com.ruoyi.booking.domain.Booking;
import org.springframework.scheduling.annotation.Scheduled;

/**
 * 预约管理Service接口
 * 
 * @author ruoyi
 * @date 2024-10-16
 */
public interface IBookingService 
{
    /**
     * 查询预约管理
     * 
     * @param bookingId 预约管理主键
     * @return 预约管理
     */
    public Booking selectBookingByBookingId(Long bookingId);

    /**
     * 查询预约管理列表
     * 
     * @param booking 预约管理
     * @return 预约管理集合
     */
    public List<Booking> selectBookingList(Booking booking);

    /**
     * 新增预约管理
     * 
     * @param booking 预约管理
     * @return 结果
     */
    public int insertBooking(Booking booking);

    /**
     * 修改预约管理
     * 
     * @param booking 预约管理
     * @return 结果
     */
    public int updateBooking(Booking booking);

    /**
     * 批量删除预约管理
     * 
     * @param bookingIds 需要删除的预约管理主键集合
     * @return 结果
     */
    public int deleteBookingByBookingIds(Long[] bookingIds);

    /**
     * 删除预约管理信息
     * 
     * @param bookingId 预约管理主键
     * @return 结果
     */
    public int deleteBookingByBookingId(Long bookingId);

    //使用Scheduled注解，实现每个月第一天执行

    @Scheduled(cron = "0 0 0 1 * ?")
    void checkExpiration();
}
